namespace NetFx.MSIL
{
  using System;
  using System.Collections.Generic;
  using System.Text;
  using System.Reflection;
  using System.Reflection.Emit;

  public class PropertySignature : Signature
  {
    #region Statics
    public static PropertySignature of(TypeSignature type, List<ParameterSignature> parameters, List<CustomModifierSignature> modifiers)
    {
      return new PropertySignature(type, parameters, modifiers);
    }
    #endregion
    #region Fields
    protected TypeSignature type = null;
    protected List<ParameterSignature> parameters = null;
    protected List<CustomModifierSignature> modifiers = null;
    #endregion
    #region Properties
    public virtual TypeSignature Type
    {
      get
      {
        return this.type;
      }
    }
    public virtual List<ParameterSignature> Parameters
    {
      get
      {
        return this.parameters;
      }
    }
    public virtual List<CustomModifierSignature> Modifiers
    {
      get
      {
        return this.modifiers;
      }
    }

    #endregion
    #region Constructors
    public PropertySignature(TypeSignature type, List<ParameterSignature> parameters, List<CustomModifierSignature> modifiers)
    {
      this.type = type;
      this.parameters = parameters;
      this.modifiers = modifiers;
    }
    #endregion
  }

}
